package com.yunke.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;

/**
 * VIP等级实体类
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@TableName("yunke_level")
@Schema(description = "VIP等级")
public class YunkeLevel {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "主键ID")
    private Long id;

    /**
     * 等级编号
     */
    @Schema(description = "等级编号")
    private String levelCode;

    /**
     * 等级名称
     */
    @Schema(description = "等级名称")
    private String levelName;

    /**
     * 等级级别
     */
    @Schema(description = "等级级别")
    private Integer levelRank;

    /**
     * 等级图标
     */
    @Schema(description = "等级图标")
    private String levelIcon;

    /**
     * 等级颜色
     */
    @Schema(description = "等级颜色")
    private String levelColor;

    /**
     * 月费价格
     */
    @Schema(description = "月费价格")
    private BigDecimal monthPrice;

    /**
     * 季费价格
     */
    @Schema(description = "季费价格")
    private BigDecimal quarterPrice;

    /**
     * 年费价格
     */
    @Schema(description = "年费价格")
    private BigDecimal yearPrice;

    /**
     * 等级描述
     */
    @Schema(description = "等级描述")
    private String description;

    /**
     * 权益列表（JSON格式）
     */
    @Schema(description = "权益列表")
    private String privileges;

    /**
     * 专属标识
     */
    @Schema(description = "专属标识")
    private String exclusiveTag;

    /**
     * 排序权重
     */
    @Schema(description = "排序权重")
    private Integer sortOrder;

    /**
     * 是否推荐：0-否 1-是
     */
    @Schema(description = "是否推荐")
    private Integer isRecommend;

    /**
     * 是否限时：0-否 1-是
     */
    @Schema(description = "是否限时")
    private Integer isLimited;

    /**
     * 限时开始时间
     */
    @Schema(description = "限时开始时间")
    private Long limitStartTime;

    /**
     * 限时结束时间
     */
    @Schema(description = "限时结束时间")
    private Long limitEndTime;

    /**
     * 折扣信息
     */
    @Schema(description = "折扣信息")
    private String discountInfo;

    /**
     * 状态：1-正常 2-停售 3-下架
     */
    @Schema(description = "状态")
    private Integer status;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Long createTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private Long updateTime;
} 